package main

//引入包
import (
	"fmt"
)
//函数
func main() {
	var a int = 21
	var b int = 10
	var c int

	c = a + b
	fmt.Printf("第一行 - c 的值为 %d\n", c )
	c = a - b
	fmt.Printf("第二行 - c 的值为 %d\n", c )
	c = a * b
	fmt.Printf("第三行 - c 的值为 %d\n", c )
	c = a / b
	fmt.Printf("第四行 - c 的值为 %d\n", c )
	c = a % b
	fmt.Printf("第五行 - c 的值为 %d\n", c )
	a++
	fmt.Printf("第六行 - a 的值为 %d\n", a )
	a=21   // 为了方便测试，a 这里重新赋值为 21
	a--
	fmt.Printf("第七行 - a 的值为 %d\n", a )
	fmt.Println()

	//条件运算符
	a  = 21
	b  = 10

	if( a == b ) {
		fmt.Printf("第一行 - a 等于 b\n" )
	} else {
		fmt.Printf("第一行 - a 不等于 b\n" )
	}
	if ( a < b ) {
		fmt.Printf("第二行 - a 小于 b\n" )
	} else {
		fmt.Printf("第二行 - a 不小于 b\n" )
	}

	if ( a > b ) {
		fmt.Printf("第三行 - a 大于 b\n" )
	} else {
		fmt.Printf("第三行 - a 不大于 b\n" )
	}
	/* Lets change value of a and b */
	a = 5
	b = 20
	if a <= b  {
		fmt.Printf("第四行 - a 小于等于 b\n" )
	}
	if ( b >= a ) {
		fmt.Printf("第五行 - b 大于等于 a\n" )
	}

	//位运算
	var aa uint = 60    /* 60 = 0011 1100 */
	var bb uint = 13    /* 13 = 0000 1101 */
	var cc uint = 0

	cc = aa & bb       /* 12 = 0000 1100  */
	fmt.Printf("第一行 - cc 的值为 %d\n", cc )

	cc = aa | bb       /* 61 = 0011 1101  */
	fmt.Printf("第二行 - cc 的值为 %d\n", cc )

	cc = aa ^ bb       /* 49 = 0011 0001 相异为1*/
	fmt.Printf("第三行 - cc 的值为 %d\n", cc )

	cc = aa << 2     /* 240 = 1111 0000 */
	fmt.Printf("第四行 - cc 的值为 %d\n", cc )

	cc = aa >> 2     /* 15 = 0000 1111 */
	fmt.Printf("第五行 - cc 的值为 %d\n", cc )

	//指针
	var a2 int = 4
	var b2 int32
	var c2 float32
	var ptr *int

	/* 运算符实例 */
	fmt.Printf("第 1 行 - a 变量类型为 = %T\n", a2 )
	fmt.Printf("第 2 行 - b 变量类型为 = %T\n", b2 )
	fmt.Printf("第 3 行 - c 变量类型为 = %T\n", c2 )

	/*  & 和 * 运算符实例 */
	ptr = &a2    /* 'ptr' 包含了 'a' 变量的地址 */
	fmt.Printf("a 的值为  %d\n", a2)
	fmt.Printf("*ptr 为 %d\n", *ptr)
}
